package baidumodel.entity.chat;

import lombok.Data;
import lombok.experimental.SuperBuilder;

import java.io.Serializable;
import java.util.List;
import java.util.Objects;

/**
 *
 * @Author wuchenxi
 * @Date 2023-08-04 21:26:12
 */
@Data
@SuperBuilder
public class BaseParam implements Serializable {
    /**
     * 聊天上下文信息。说明：
     * （1）messages成员不能为空，1个成员表示单轮对话，多个成员表示多轮对话
     * （2）最后一个message为当前请求的信息，前面的message为历史对话信息
     * （3）必须为奇数个成员，成员中message的role必须依次为user、assistant
     * （4）最后一个message的content长度（即此轮对话的问题）不能超过2000个字符；如果messages中content总长度大于2000字符，系统会依次遗忘最早的历史会话，直到content的总长度不超过2000个字符
     */
    protected List<BaiduChatMessage> messages;

    /**
     * 是否以流式接口的形式返回数据，默认false
     */
    protected Boolean stream;

    /**
     * 表示最终用户的唯一标识符，可以监视和检测滥用行为，防止接口恶意调用
     */
    protected String user_id;

    public boolean isStream() {
        return Objects.equals(this.stream, true);
    }

    public BaseParam(){}
}
